package com.lyf.design.learn.designmodel.chain.sample.v1;

import java.util.HashMap;
import java.util.Map;
import java.util.function.Predicate;

/**
 * @AUTHOR LYF
 * @DATE 2022/6/10
 * @VERSION 1.0
 * @DESC
 */
public class HrHandler extends Handler{


    @Override
    boolean handle(Request request) {
        // 分析处理request,（1）驳回 （2）上交下一个责任链
        // 需要根据不同情况进行驳回，，返回List好一点？？记录每次负责人的审批结果，传参
        if(handlerRequest(request)){
            return nextHandler.handle(request);
        }
        return false;
    }
    boolean handlerRequest(Request request){

        // 若一个人的职责过多，处理则会膨胀，，职责动态增加呢？如何拓展
        // 不能采用if else 去？？
        // 设立一个属性 ，存储职责功能--组合 →  Map<String,> 根据申请类型去处理事件，Map可以动态添加--涉及存储--
        // 模拟已有的--
        Map<String, Predicate<Request>> map=new HashMap<>();
        Predicate<Request> handleApply1 = e->{
              if(e.equals("11")){
                  return true;
              }
              return false;
        };
        map.put("hrApply1",handleApply1);





        return true;
    }


}
